﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Rockfan.Framework;
using Rockfan.Framework.Audio.Midi;

namespace Rockfan.Framework.Audio
{
    public abstract class Track
    {
        public string Name { get; protected set; }

        public abstract int Count { get; }

        public Track(string name)
        {
            this.Name = name;
        }

        internal abstract void SortAccending();
        internal abstract void Clear();
        internal abstract void AddEvent<T>(T value) where T : TrackEvent;
        internal abstract void RemoveEvent(TrackEvent value);
        internal abstract void RemoveEventAt(int index);
    }
}
